package com.ruoyi.subject.service;

import com.ruoyi.subject.domain.*;

import java.util.List;
import java.util.Map;

/**
 * @author 11975
 */
public interface ISpecialSubjectService {

    /**
     * 获取公开情报专题数据列表
     * @param catalog 清单数据
     * @return list
     */
    List<SubjectCatalog> getSubjectList(SubjectCatalog catalog);

    /**
     * 根据专题id或专题类型查询专题
     * @param catalog 清单数据
     * @return list
     */
    SubjectChapterAndTarget getSubjectChapterList(SubjectCatalog catalog);

    /**
     * 创建模板
     * @param template 模板内容
     * @return row
     */
    int addSubjectTemplate(SubjectTemplate template);

    /**
     * 删除模板
     * @param ids templateIds
     * @return row
     */
    int deleteSubjectTemplate(Long[] ids);


    /**
     * 根据专题获取专题人物
     *
     * @param id        专题id
     * @param subjectId
     * @return list
     */
    SubjectTemplateAndTarget getReportBaseInfo(Long id, Long subjectId);

    /**
     * 新增公开情报专题数据
     * @param catalog 专题数据信息
     * @return row
     */
    int addSubjectCatalog(SubjectCatalog catalog);

    /**
     * 删除公开情报专题列表
     * @param ids subjectIds
     * @return  row
     */
    int delSubjectCatalog(Long[] ids);

    /**
     * 获取专题下主题目标列表
     * @param type 1舰船 2飞机 3雷达 4导弹 5固定设施 6人物 7事件
     * @return list
     */
    List<Map<String, Object>> getTargetList(Integer type);

    /**
     * 获取专题下所有模板
     * @param type 1舰船 2飞机 3雷达 4导弹 5固定设施 6人物 7事件
     * @return list
     */
    List<SubjectTemplate> getTempleateList(Integer type);

    /**
     * 创建PDF集合
     * @param createPdf
     * @return
     */
    String createPdf(CreatePdf createPdf);

    /**
     * 获取pdf
     * @param subjectId
     * @return
     */

    SubjectResult getPdfPath(Integer subjectId);
}
